<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<script src="//unpkg.com/vue/dist/vue.js"></script>
		<title></title>
	</head>
	<body>
		<div id="todo-list-example">
		  <form v-on:submit.prevent="addNewTodo">
		    <label for="new-todo">Add a todo</label>
		    <input
		      v-model="newTodoText"
		      id="new-todo"
		      placeholder="E.g. Feed the cat"
		    >
		    <button>Add</button>
		  </form>
		  <ul>
		    <li
		      is="todo-item"
		      v-for="(todo, index) in todos"
		      v-bind:key="todo.id"
		      v-bind:title="todo.title"
		      v-on:remove="todos.splice(index, 1)"
		    ></li>
		  </ul>
		</div>
	</body>
	<script>
		Vue.component('todo-item', {
			template: '\
			    <li>\
			      {{ title }}\
			      <button v-on:click="$emit(\'remove\')">Remove</button>\
			    </li>\
			  ',
			props: ['title']
		})
		
		new Vue({
			el: '#todo-list-example',
			data: {
				newTodoText: '',
				todos: [
					{
						id: 1,
						title: 'Do the dishea'
					},
					{
						id: 2,
						title: 'Take out the trash'
					},
					{
						id: 3,
						title: 'Now the lawn'
					}
				],
				nextTodoId: 4
			},
			methods: {
				addNewTodo: function() {
					this.todos.push({
						id: this.nextTodoId++,
						title:this.newTodoText
					})
					this.newTodoText = ''
				}
			}
		})
	</script>
</html>
